home *** CD-ROM | disk | FTP | other *** search
/ Flash MX Savvy / FlashMX Savvy.iso / pc / MAC / Amapi3D / Amapi3DTrial_Edition / 3SPACE / HighLightBehavior.js < prev    next >
Encoding:
Text File  |  2001-02-20  |  1.9 KB  |  65 lines  |  [AMAS/AMAP]

  1. // -* HighlightBehavior.js *-
  2. //
  3. // Name: Highlight behavior
  4. // Description: 
  5. // Author:
  6. // Version: $Id: HighLightBehavior.js,v 1.8 2000/12/21 15:03:30 consumer Exp $
  7. //
  8.  
  9. // Keep an array of the solids using this behavior
  10. var highlightSolids= new Array(1);
  11.  
  12. function HighlightBehavior(solidName, intensity, geomName)
  13. {
  14.   // Member methods of the behavior
  15.   this.start = HighlightBehaviorStart;
  16.   this.stop = HighlightBehaviorStop;
  17.  
  18.   // Member variables of the behavior
  19.   this.intensity = intensity;
  20.   this.geomName = geomName;
  21. }
  22.  
  23. function HighlightBehaviorStart()
  24. {
  25.   var color = TSMakeColorFromString(TSGetAttribute(this.geomName, 'color'));
  26.   color.r = parseFloat(color.r) + parseFloat(this.intensity)
  27.   color.g = parseFloat(color.g) + parseFloat(this.intensity)
  28.   color.b = parseFloat(color.b) + parseFloat(this.intensity)
  29.   TSUpdateNodeAttribute(this.geomName, 'color', TSMakeStringFromColor(color));
  30. }
  31.  
  32. function HighlightBehaviorStop()
  33. {
  34.   var color = TSMakeColorFromString(TSGetAttribute(this.geomName, 'color'));
  35.   color.r = parseFloat(color.r) - parseFloat(this.intensity)
  36.   color.g = parseFloat(color.g) - parseFloat(this.intensity)
  37.   color.b = parseFloat(color.b) - parseFloat(this.intensity)
  38.   TSUpdateNodeAttribute(this.geomName, 'color', TSMakeStringFromColor(color));
  39. }
  40.  
  41. //
  42. // Event functions
  43. //
  44.  
  45. function HighlightBehaviorStartEvent(obj, event)
  46. {
  47.   if (highlightSolids[obj] == null) {
  48.     var intensity = TSGetExtraParam(event, 'intensity');
  49.     var geomName  = TSGetExtraParam(event, 'geom');
  50.     var targetSolid = TSGetExtraParam(event, 'targetSolid');
  51.  
  52.     if (targetSolid == "")
  53.       highlightSolids[obj] = new HighlightBehavior(obj, intensity, geomName) ;
  54.     else
  55.       highlightSolids[obj] = new HighlightBehavior(targetSolid, intensity, geomName) ;
  56.   }
  57.  
  58.   highlightSolids[obj].start();
  59. }
  60.  
  61. function HighlightBehaviorStopEvent(obj, event)
  62. {
  63.   highlightSolids[obj].stop();
  64. }
  65.